13473
19372
Zajímalo by mě, zda mezery a komentáře zpomalují JavaScript? Dělám útok hrubou silou, který trvá nějakou dobu (30 sekund). Odstranění mezer nevykazuje výrazný nárůst rychlosti, ale myslím si, že prohlížeč prostě musí analyzovat více.
Je tedy k odstranění celé zbytečné mezery a komentářů užitečné k urychlení celé akce? 
Lidé obvykle používají minimalizátory ke zmenšení VELIKOSTI skriptu, ke zlepšení rychlosti stahování, spíše než k nějakému rozdílu v rychlosti analýzy skriptu.
Mezery a komentáře budou mít malý vliv na to, jak dlouho trvá spuštění prohlížeče, protože analyzátor musí zkontrolovat, zda se jedná o mezery nebo komentář, ale ve skutečnosti to bude při aktuální výpočetní síle tak minutové, že by bylo nemožné všimněte si jakéhokoli nárazu.
SIZE je však stále důležitý i při velké šířce pásma dostupné v našem širokopásmovém světě.
|
Mezery a komentáře zvětšují velikost souboru JavaScriptu, což zpomaluje samotné stahování souboru ze serveru - minifikace je proces odstraňování nepotřebných znaků ze souboru JavaScriptu, aby se zmenšil a usnadnil stahování.
Jelikož však zmiňujete útok hrubou silou, překážkou pravděpodobně není stahování. Zkuste použít profiler a zjistěte, co vás zpomaluje.
|
Minifikace, kombinování a gzipování vašich aktiv má vždy smysl, aby se usnadnilo načítání serveru.
Minifikace je úkon, na který odkazujete, zbavování zbytečných mezer a komentářů, aby se rychlost stahování snížila.
Kombinace s největší pravděpodobností ukáže ještě větší zvýšení rychlosti vykreslování stránky; jedná se o sloučení všech vašich souborů javascript do jednoho a všech vašich css souborů do jednoho (lze to udělat také pro většinu obrázků, ale to vyžaduje nějakou další práci). Důvodem je snížení množství požadavků, které musí prohlížeč vůči vašemu serveru učinit, aby mohl stránku zobrazit.
GZipping je akt další komprese dat ve formátu ZIP do prohlížečů, které naznačují, že tato data přijmou. To dále zmenšuje velikost, ale přidává další pracovní zátěž na obou koncích. Pravděpodobně z toho uvidíte čistý zisk.
V závislosti na tom, v jakém prostředí pracujete, existují různé komponenty, které vám s tím pomohou, které obvykle pokryjí všechny výše uvedené věci najednou.
Čas, který váš kód potřebuje ke stažení ze serveru, má přímý vliv na to, jak dlouho trvá vykreslení stránky. JavaScript blokuje, což znamená, že blok JS zabrání jakémukoli dalšímu vykreslování, dokud nebude blok proveden úplně. Například to, kam vložíte soubory javascript (tj. Ve kterém bodě procesu vykreslování budou požadovány), kolik požadavků je potřeba k úplnému stažení a kolik dat je ke stažení, bude mít dopad načtení stránky, jak se uživateli jeví.
Jakmile prohlížeč analyzuje váš kód, ať už je to javascript, css nebo html, vytvoří interní reprezentace části, kterou si musí pamatovat, a skutečné formátování ji již neovlivní.
|
Nemyslím si, že mezery v kódu js zpomalují jeho provádění. Pokud chápu, tlumočník javascript před zpracováním odstraní všechny komentáře a nadbytečné mezery. Může to ovlivnit dobu stahování a tím i dobu načítání webové stránky.
Podívejte se zde na další informace.
|
Nemá žádný až žádný dopad na skutečnou rychlost zpracování, nicméně ...
Menší velikost => menší šířka pásma => menší náklady => ??? => zisk!
|
Tvoje odpověď
StackExchange.ifUsing ("editor", function () {
StackExchange.using ("externalEditor", function () {
StackExchange.using ("snippets", function () {
StackExchange.snippets.init ();
});
});
}, „code-snippets“);
StackExchange.ready (funkce () {
var channelOptions = {
tagy: "" .split (""),
id: "1"
};
initTagRenderer ("". split (""), "" .split (""), channelOptions);
StackExchange.using ("externalEditor", function () {
// Je nutné po úryvcích vypálit editor, pokud jsou úryvky povoleny
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using ("snippets", function () {
createEditor ();
});
}
else {
createEditor ();
}
});
funkce createEditor () {
StackExchange.prepareEditor ({
useStacksEditor: false,
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class = \" svg-icon \ "width = \" 50 \ "height = \" 18 \ "viewBox = \ "0 0 50 18 \" fill = \ "none \" xmlns = \ "http: //www.w3.org/2000/svg \" \ u003e \ u003cpath d = \ "M46.1709 9.17788C46.1709 8.26454 46,2665 7,94324 47,1084 7,58816C47.4091 7,46349 47,7169 7,36433 48,0099 7,26993C48,9099 6,97977 49,672 6,73443 49,672 5,93063C49,672 5,22043 48,9832 4,61182 48,1414 4,61182C47,4335 4,61182 46,7256 4,91628 4,91650 4,91650 4,416 164 4,45 43,1481 6,59048V11.9512C43.1481 13,2535 43,6264 13,8962 44,6595 13,8962C45,6924 13,8962 46,1709 13,2535 46,1709 11,9512V9.17788Z \ "/ \ u003e \ u003cpath d = \" M32.492 10,1419432,144,14,144,14,144,144,14,144,44 41,5985 12,6954 41,5985 10,1419 V6,59049C41,5985 5,28821 41,1394 4,6663240,1061 4,66232C39,0732 4,66232 38,5948 5,28821 38,5948 6,59049V9,60062C38,5948 10,8521 38,2696 11,5455 37,0451 11,5455C35,8209 11,5455 35,4954 10,8521 35,4954 9,60062V6,59049C35,4954 5,282 322,324 4,322 422,324 "/ \ u003e \ u003cpath fill-rule = \" evenodd \ "clip-rule = \" evenodd \ "d = \" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6. 59049C30.9615 5,28821 30,4833 4,66231 29,4502 4,66231C28,9913 4,66231 28,4555 4,94978 28,1109 5,50789C27,499 4,86533 26,7335 4,56087 25,7005 4,56087C23.1369 4,56087 21,0134 6,57349 21,0134 9,133 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 13,13 1109 12,7229 28,1161 12,7799 28,121 12,8346C28.1256 12,854 28,1301 12,9342 28,1301 12,983 C28,1301 14,4373 27,2502 15,2321 25,777 15,2321C24,8349 15,2321 24,1352 14,9821 23,5661 14,7787 2223,54 14,5392 18 21,2429 15,0123 21,2429 15,6887C21.2429 16,7375 22,9072 17,6335 25,6622 17,6335 ZM24,1317 9,27932C24,1317 7,94324 24,9928 7,09766 26,1024 7,09766C27,2199 7,09766 28,0918 7,9432 28,0918 9,272,117 11,114 11,111 26,11 11,114 11,111 26,11 11,114 \ "/ \ u003e \ u003cpath d = \" M16.8045 11.9512C16.8045 13.2535 17.2637 13.8962 18.2965 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4027 .653 5,05154 11,6581 4,62866 10,3573 4,62866C9,34336 4,62866 8,57809 4,89931 7,94666 5,5079C7,58314 4,9328 7,10506 4,66232 6,51203 4,66232C5,47873 4,66232 5,00066 5,2881 500066 6,59049V11,9512C5,000662 13,282,53 .90741C8.0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.915 7 13,2535 13,9157 11,9512V8,90741C13,9157 7,58817 14,3365 6,91179 15,4269 6,91179C16.4027 6,91179 16,8045 7,58817 16,8045 8,94108V11.9512Z \ "/ \ u003e \ u003cpath d = \" M3,31675 6,326 322,326 6,32832 322 791758 4,66232 0,313354 5,2881 21,313354 6,59049V11,9512C0,313354 13,2535 0,791758 13,8962 1,82471 13,8962C2,87998 13,8962 3,31675 13,2535 3,31675 11,9512V6,59049Z \ "/ \ u003e \ u003cpath d = \ 0,001 C0 2,87869 0,822846 3,57676 1,87209 3,57676C2.90056 3,57676 3,7234 2,87869 3,7234 1,98861C3,7234 1,1159 2,90056 0,400291 1,87209 0,400291Z \ "fill = \" # 1BB76E \ "/ \ u003e \ u00 \ u003c / sv00
contentPolicyHtml: "Uživatelské příspěvky jsou licencovány pod \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (obsahové zásady) \ u003c / a \ u003e",
allowUrls: true
},
onDemand: pravda,
discardSelector: ".discard-answer"
, okamžitěShowMarkdownHelp: true, enableTables: true, enableSnippets: true
});
}
});
Děkujeme, že jste přispěli odpovědí na Stack Overflow!
Nezapomeňte na otázku odpovědět. Uveďte podrobnosti a sdílejte svůj výzkum!
Ale vyhnout se ...
Žádáme o pomoc, vysvětlení nebo reagujeme na jiné odpovědi.
Vytváření prohlášení na základě názoru; podpořte je referencemi nebo osobními zkušenostmi.
Chcete-li se dozvědět více, přečtěte si naše tipy na psaní skvělých odpovědí.
Koncept uložen
Koncept zahozen
Zaregistrujte se nebo se přihlaste
StackExchange.ready (funkce () {
StackExchange.helpers.onClickDraftSave ('# login-link');
});
Zaregistrujte se pomocí Google
Zaregistrujte se pomocí Facebooku
Zaregistrujte se pomocí e-mailu a hesla
Předložit
Zveřejněte jako host
název
E-mailem
Povinné, ale nikdy zobrazené
StackExchange.ready (
funkce () {
StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f4423553% 2fdo-spaces-comments-slow-javascript-down% 23new-answer', 'question_page' );
}
);
Zveřejněte jako host
název
E-mailem
Povinné, ale nikdy zobrazené
Zveřejněte svou odpověď
Vyřadit
Kliknutím na „Odeslat odpověď“ vyjadřujete souhlas s našimi podmínkami služby, zásadami ochrany osobních údajů a zásadami používání souborů cookie
Toto není odpověď, kterou hledáte? Projděte si další otázky se štítkem javascript nebo se zeptejte na vlastní otázku.